home *** CD-ROM | disk | FTP | other *** search
/ Software of the Month Club 2000 October / Software of the Month - Ultimate Collection Shareware 277.iso / pc / PROGRAMS / UTILITY / WINLINUX / DATA1.CAB / programs_-_include / LINUX / FIREWALL.H < prev    next >
Encoding:
C/C++ Source or Header  |  1999-09-17  |  1.9 KB  |  62 lines

  1. #ifndef __LINUX_FIREWALL_H
  2. #define __LINUX_FIREWALL_H
  3.  
  4. #include <linux/config.h>
  5.  
  6. /*
  7.  *    Definitions for loadable firewall modules
  8.  */
  9.  
  10. #define FW_QUEUE    0
  11. #define FW_BLOCK    1
  12. #define FW_ACCEPT    2
  13. #define FW_REJECT    (-1)
  14. #define FW_REDIRECT    3
  15. #define FW_MASQUERADE    4
  16. #define FW_SKIP        5
  17.  
  18. struct firewall_ops
  19. {
  20.     struct firewall_ops *next;
  21.     int (*fw_forward)(struct firewall_ops *this, int pf, 
  22.             struct device *dev, void *phdr, void *arg, struct sk_buff **pskb);
  23.     int (*fw_input)(struct firewall_ops *this, int pf, 
  24.             struct device *dev, void *phdr, void *arg, struct sk_buff **pskb);
  25.     int (*fw_output)(struct firewall_ops *this, int pf, 
  26.             struct device *dev, void *phdr, void *arg, struct sk_buff **pskb);
  27.     /* Data falling in the second 486 cache line isn't used directly
  28.        during a firewall call and scan, only by insert/delete and other
  29.        unusual cases
  30.      */
  31.     int fw_pf;        /* Protocol family             */    
  32.     int fw_priority;    /* Priority of chosen firewalls     */
  33. };
  34.  
  35. #ifdef __KERNEL__
  36. extern int register_firewall(int pf, struct firewall_ops *fw);
  37. extern int unregister_firewall(int pf, struct firewall_ops *fw);
  38. extern void fwchain_init(void);
  39. #ifdef CONFIG_FIREWALL
  40. extern int call_fw_firewall(int pf, struct device *dev, void *phdr, void *arg, struct sk_buff **pskb);
  41. extern int call_in_firewall(int pf, struct device *dev, void *phdr, void *arg, struct sk_buff **pskb);
  42. extern int call_out_firewall(int pf, struct device *dev, void *phdr, void *arg, struct sk_buff **pskb);
  43. #else
  44. extern __inline__ int call_fw_firewall(int pf, struct device *dev, void *phdr, void *arg, struct sk_buff **skb)
  45. {
  46.     return FW_ACCEPT;
  47. }
  48.  
  49. extern __inline__ int call_in_firewall(int pf, struct device *dev, void *phdr, void *arg, struct sk_buff **skb)
  50. {
  51.     return FW_ACCEPT;
  52. }
  53.  
  54. extern __inline__ int call_out_firewall(int pf, struct device *dev, void *phdr, void *arg, struct sk_buff **skb)
  55. {
  56.     return FW_ACCEPT;
  57. }
  58.  
  59. #endif
  60. #endif
  61. #endif
  62.